package com.dengdai.applibrary.base;

import com.dengdai.pullrefresh.library.PullToRefreshBase.*;

import java.util.List;

/**
 * @说明 ListFragment接口
 * @作者 LY
 * @时间 15/12/21 16:31
 * @版权 Copyright(c) 2015 LY-版权所有
 */
public interface IBaseList<T> {
    /**
     * 没有刷新和加载
     */
    public static final Mode DISABLED = Mode.DISABLED;
    /**
     * 只有刷新
     */
    public static final Mode PULL_FROM_START = Mode.PULL_FROM_START;
    /**
     * 只有加载
     */
    public static final Mode PULL_FROM_END = Mode.PULL_FROM_END;
    /**
     * 有加载和加载
     */
    public static final Mode BOTH = Mode.BOTH;
    /**
     * 没有刷新和加载
     */
    public static final Mode MANUAL_REFRESH_ONLY = Mode.MANUAL_REFRESH_ONLY;

    /**
     * 设置listView的类型
     *
     * @return 刷新类型
     */
    Mode getListViewMode();

    /**
     * listView点击事件
     *
     * @param t        数据对象
     * @param position item
     */
    void itemClick(T t, int position);

    /**
     * 绑定数据
     *
     * @param object 数据
     * @return 列表数据
     */
    List<T> doHandelData(Object object);

    /**
     * 加载数据监听
     */
    void loadDataCallBack();

    /**
     * ViewHolder
     *
     * @return
     */
    BaseViewHolder getViewHolder();

    /**
     * 加载数据
     */
    void loadData();

    /**
     * 结束刷新
     */
    void stopRefreshView();
}
